#ifndef MODULEINFO_H
#define MODULEINFO_H

#include <QtCore/QString>
#include <QtCore/QObject>
#include <QtGui/QIcon>

/*!
 * This is class with module info. Any kinds
 * of modules or plugins must inherit this class.
 * This class contains common information fields
 * about modules, vendors, contributors etc.
 *
 *
 *
 */

class ModuleInfo : public QObject {
public:
    ModuleInfo(QObject *parent = 0);
    ~ModuleInfo();


    QString getServiceName()        const {
        return m_service_name;
    }

    QString getServiceVendorName()  const {
        return m_service_vendor_name;
    }

    QString getModuleVendorName()   const {
        return m_module_vendor_name;
    }

    QString getModuleName()         const {
        return m_module_name;
    }

    QString getModuleVersion()      const {
        return m_module_version;
    }

    QIcon   getModuleIcon()         const {
        return m_module_icon;
    }

    void setServiceName(const QString &str) {
        m_service_name = str;
    }

    void setServiceVendorName(const QString &str) {
        m_service_vendor_name = str;
    }

    void setModuleVendorName(const QString &str) {
        m_module_vendor_name = str;
    }

    void setModuleName(const QString &str) {
        m_module_name = str;
    }

    void setModuleVersion(const QString &ver) {
        m_module_version = ver;
    }

    void setModuleIcon(const QIcon &ic) {
        m_module_icon = ic;
    }


private:
    QString
    m_service_name,
    m_service_vendor_name,

    m_module_vendor_name,
    m_module_name,
    m_module_version;

    QIcon m_module_icon;


};


#endif // MODULEINFO_H
